//
//  NSData+formatString.swift
//  01.时间转换
//
//  Created by 杨兵 on 15/5/25.
//  Copyright (c) 2015年 bing. All rights reserved.
//

import Foundation

extension NSDate {
    
    // 日期转换规则
    /**
        一分钟内    刚刚
        一小时内    34分钟前
        一天内     HH:mm
        昨天      昨天 HH:mm
    
        本年内     mm-dd(几月几日)
        其他年份    yyyy-mm-dd
    
       新浪微博返回的日期格式
        Sun May 24 13:59:03 +0800 2015
    */
    class func formatStringToString(dateString: String) -> String?{
        let fm = NSDateFormatter()
        
        // 首先转换为时间,必须设置locale为en
        fm.locale = NSLocale(localeIdentifier: "en")
        fm.dateFormat = "EEE MMM dd HH:mm:ss zzz yyyy"
        
        // 转换为日期格式
        let date = fm.dateFromString(dateString)
        if date == nil {
            return ""
        }
        
        // 是否是今天
        let calender = NSCalendar.currentCalendar()
        if calender.isDateInToday(date!) {
            let timerange = Int(NSDate().timeIntervalSinceDate(date!))
            if timerange < 60 {
                return "刚刚"
            } else if timerange < 60 * 60 {
                return "\(timerange / 60) 分钟前"
            } else {
                fm.dateFormat = "HH:ss"
                return fm.stringFromDate(date!)
            }
        }
        
        // 年
        let year = calender.components(NSCalendarUnit.CalendarUnitYear, fromDate: NSDate(), toDate: date!, options: NSCalendarOptions(0)).year
        
        // 今年
        if year == 0 {
            fm.dateFormat = "MM-dd 号"
            return fm.stringFromDate(date!)
        }
        
        fm.dateFormat = "yyyy-MM-dd"
        return fm.stringFromDate(date!)
    }
    
}